/*************************************************************************
 * Filename:    Testing.h
 * Description: Runs the test interface. Accepts user input and sends it 
 *              to Commands.c
 * Group 2:     nachOS
 * Authors:     Daniel Fairweather
 * Class:       CSE 325
 * Instructor:  Mr. Duggan
 * Assignment:  Lab #3 Scheduler
 * Assigned:    Feburary 12, 2013
 * Due:         Feburary 26, 2013
 *************************************************************************/
#ifndef TESTING_H
#define TESTING_H

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include "Commands.h"
#include "ProcessManager.h"
#include "QueueManager.h"

/**
 * Gets the current test mode (dynamic | static | redirection)
 * @author Daniel Fairweather
 */
int getTestMode();



/**
 * Sets the current test mode (dynamic = 2 | static = 1 | redirection = 0)
 * @author Daniel Fairweather
 * @param i The test mode id.
 */
int setTestMode(int i);



/**
 * Prints the specified process according to the scheduler being used.
 * @author Daniel Fairweather
 * @param pcb The process_control_block to be printed.
 */
void printProcess(process_control_block* pcb);



/**
 * Prints the queue in it's natural order.
 * @author Daniel Fairweather
 * @param qid The queue id of the queue to print.
 */
void printQueue(int qid);



/**
 * Prints all of the queues in their natural order.
 * @author Daniel Fairweather
 */
void printQueues();



/**
 * Lists all queues in increasing order.
 * @author Daniel Fairweather
 */
void listQueues();


/**
 * Lists a queue in increasing order.
 * @author Daniel Fairweather
 * @param qid The queue id of the queue to list.
 */
void listQueue(int qid);



#endif